<?php
/**
 * 描述：找回密码-重置密码。
 * @final
 */
class Exec_Account_Find_Second extends Exec
{
    /**
     * 描述：校检链接。
     */
    public function Get()
    {
        #获取参数       
        $number=Functions::UrlArgs('number');

        #获取数据
        $isNumber=FALSE;
        $data=DB::PGetRows('select * from account_find_wait where Number=?',array
        (
            $number
        ));
        if($data)
        {            
            if(Functions::DateDiff($data[0]['Datetime'])<=3)   //在3天之内算没过期
            {
                //链接正确
                $isNumber=TRUE;

                //显示页面
                View::Assign('Number',$number);
                View::Display('account/find/second.tpl');

                //逻辑握手-抛
                Session::Set(Account::SESSIONNAME_FINDPASSWORD_SECOND,TRUE);
            }
        }

        #页面处理
        if(!$isNumber)
        {
            View::Assign('Title','找回密码');
            View::Assign('Content','验证码己经过期，点击<a href="/exec.php?action=account_find_first" target="_self">重新找回密码</a>!');
            View::Display('account/public.container.tpl');
        }
    }

    /**
     * 描述：重置密码，AJAX响应类型。
     */
    public function Post()
    {
        #逻辑握手-接
        if(!Session::Get(Account::SESSIONNAME_FINDPASSWORD_SECOND))
        {
            echo 'Error';
            return;
        }
        Session::Set(Account::SESSIONNAME_FINDPASSWORD_SECOND,NULL);

        #获取数据
        $number=Functions::FormArgs('Number');
        $password=Functions::FormArgs('Password_Find_Second');
        $password_confirm=Functions::FormArgs('Password_Confirm_Find_Second');

        #验证数据
        if($password!=$password_confirm)
        {
            echo 'Password';
            return;
        }

        #获取用户名
        $username=NULL;
        $data=DB::PGetRows('select * from account_find_wait where Number=?',array
        (
            $number
        ));
        if($data)
        {
            $username=$data[0]['Account'];
            DB::PExec('delete from account_find_wait where Account=?',array     //删除该用户所有验证码，因为己经修改完密码
            (
                $username
            ));
        }
        else
        {
            View::Assign('Title','找回密码');
            View::Assign('Content','找回密码的验证链接己经过期，请重新找回。点击<a href="exec.php?action=account_find_first" target="_self">找回密码</a>。');
            View::Display('account/public.container.tpl');
            return;
        }

        #修改密码
        $account=new Account($username);
        if($account->IsExists())
        {
            $account->Update(array(
                'Password'=>Account::EncryptPassword($password,$username)
            ));           

            View::Assign('Title','找回密码');
            View::Assign('Content','密码修改成功，请<a href="/login.html" target="_self">重新登录</a>。');
            View::Display('account/public.container.tpl');
        }
        else
        {
            View::Assign('Title','找回密码');
            View::Assign('Content','找回密码失败，点击<a href="exec.php?action=account_find_first" target="_self">重新找回密码</a>。');
            View::Display('account/public.container.tpl');            
        }
        $account=NULL;
    }
}
?>
